package com.xbongbong.saas.service;

import com.xbongbong.paas.pojo.dto.ApiTokenSaveDTO;
import com.xbongbong.paas.pojo.dto.WhiteListUpdateDTO;
import com.xbongbong.paas.pojo.vo.ApiTokenSaveVO;
import com.xbongbong.paas.pojo.vo.ApiTokenVO;
import com.xbongbong.paas.pojo.vo.TokenUpdateVO;
import com.xbongbong.paas.pojo.vo.WhiteListUpdateVO;
import com.xbongbong.paas.toolbox.exception.XbbException;
import com.xbongbong.paas.toolbox.wrap.BaseDTO;

/**
 * api-token
 * 创建时间 2019/10/10 5:11 PM
 * 修改时间 2019/10/10 5:11 PM
 * @author chy
 * @since v1.1.3
 * @version v1.1.3
 */
public interface ApiTokenService {
    /**
     * api-token保存
     * @param apiTokenSaveDTO
     * @return
     * @throws XbbException
     * 创建时间 2019/10/10 5:20 PM
     * 修改时间 2019/10/10 5:20 PM
     * @author chy
     * @since v1.1.3
     * @version v1.1.3
     */
    ApiTokenSaveVO save(ApiTokenSaveDTO apiTokenSaveDTO) throws XbbException;

    /**
     * api-token中的token更新
     * @param baseDTO
     * @return
     * @throws XbbException
     * 创建时间 2019/10/10 7:40 PM
     * 修改时间 2019/10/10 7:40 PM
     * @author chy
     * @since v1.1.3
     * @version v1.1.3
     */
    TokenUpdateVO tokenUpdate(BaseDTO baseDTO) throws XbbException;

    /**
     * 白名单更新
     * @param whiteListUpdateDTO
     * @return
     * @throws XbbException
     * 创建时间 2019/10/10 7:40 PM
     * 修改时间 2019/10/10 7:40 PM
     * @author chy
     * @since v1.1.3
     * @version v1.1.3
     */
    WhiteListUpdateVO whiteListUpdate(WhiteListUpdateDTO whiteListUpdateDTO) throws XbbException;



    /**
     * 获取api-token
     * @param baseDTO
     * @return
     * @throws XbbException
     * 创建时间 2019/10/10 7:40 PM
     * 修改时间 2019/10/10 7:40 PM
     * @author chy
     * @since v1.1.3
     * @version v1.1.3
     */
    ApiTokenVO getApiToken(BaseDTO baseDTO) throws XbbException;
}
